﻿using Microsoft.AspNetCore.Http;
using System;
using System.IO;

namespace MaterialDemo.Utility
{
    public class FilesHelper
    {
        public static void DelectDir(string srcPath)
        {

            try
            {
                if (Directory.Exists(srcPath) == true)//如果存在才删除
                {
                    DirectoryInfo dir = new DirectoryInfo(srcPath);
                    FileSystemInfo[] fileinfo = dir.GetFileSystemInfos();  //返回目录中所有文件和子目录
                    foreach (FileSystemInfo i in fileinfo)
                    {
                        if (i is DirectoryInfo)            //判断是否文件夹
                        {
                            DirectoryInfo subdir = new DirectoryInfo(i.FullName);
                            subdir.Delete(true);          //删除子目录和文件
                        }
                        else
                        {
                            File.Delete(i.FullName);      //删除指定文件
                        }
                    }
                }
            }
            catch (Exception e)
            {
                throw;
            }

        }

        /// <summary>
        /// 上传图片--没测试过
        /// </summary>
        /// <param name="file">上传的文件</param>
        /// <param name="path">需要存到服务器的地址</param>
        public static string UploadImage(IFormFile file, string path)
        {
            string strResult = "ok";
            //获取文件名后缀
            string extName = Path.GetExtension(file.FileName).ToLower();

            //判断文件格式.jpg .jpeg .gif .png .bmp
            if (extName != ".png" && extName != ".jpg" && extName != ".jpeg" && extName != ".gif" && extName != ".bmp")
            {
                strResult = "no";
            }
            //判断文件大小
            if (file.Length > 1024 * 1024 * 2)//大小限制2m
            {
                strResult = "no";
            }

            //获取保存目录的物理路径
            if (System.IO.Directory.Exists(path) == false)//如果不存在就创建images文件夹
            {
                System.IO.Directory.CreateDirectory(path);
            }
            string path1 = path + "/"; //path为某个文件夹的绝对路径，不要直接保存到数据库                                                                                                                         
            string ImageUrl = path1 + file.FileName;
            //将文件保存到指定文件夹中
            using (FileStream fs = System.IO.File.Create(ImageUrl))//创建文件流
            {
                file.CopyTo(fs);//将上载文件的内容复制到目标流
                fs.Flush();//清除此流的缓冲区并导致将任何缓冲数据写入
            }


            return strResult;
        }
    }
}
